package com.sky.entity;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * @Author 褚金龙
 * @Date 2024/10/6 11:29
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class Orders implements Serializable {
    /**
     * 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6 已取消
     */
    public static  final Integer PENDING_PAYMENT=1;
    public static  final Integer TO_BE_CONFIRMED=2;
    public static  final Integer CONFIRMED=3;
    public static  final Integer DELIVERY_IN_PROGRESS=4;
    public static  final Integer COMPLETED=5;
    public static  final Integer CANCELLED=6;

    /**
     * 支付状态  0未支付 1已支付 2退款
     */

    public static final Integer UN_PAID=0;
    public static final Integer PAID=1;
    public static final Integer REFUND=2;

    private static final long serialVersionUID=1L;

    private Long id;
    //订单编号
    private String number;

    //订单状态 1待付款 2待接单 3已接单 4 派送中 5 已完成 6 已取消 7 已退款

    private Integer status;

    // 下单用户id
    private Long userId;
    // 地址id
    private Long addressBookId;
    //下单时间
    private LocalDateTime orderTime;
    //结账时间
    private LocalDateTime checkoutTime;
    //支付方式1微信  2 支付宝

    private Integer payMethod;

    //支付状态 0未支付 1已支付 2退款
    private Integer payStatus;

    //实收金额
    private BigDecimal amount;

    //备注
    private String remark;

    //用户名
    private  String phone;

    //地址
    private  String address;

    //收货人
    private  String consignee;

    //订单取消原因
    private String cancelReason;

    //订单拒绝原因
    private String rejectionReason;
    //订单取消时间
    private LocalDateTime cancelTime;
    //预计送达时间
    private String estimatedDeliveryTime;

    //配送状态 1立即送出 0 选择具体时间
    private Integer deliveryStatus;

    //送达时间
    private LocalDateTime deliveryTime;

    //打包费
    private int packAmount;

    // 餐具数量
    private int tablewareNumber;
    // 餐具数量状态 1 按餐量提供 0 选择具体数量

    private  Integer tablewareStatus;
   // 购物车菜品名称
    private  String name;


}
